package com.wande.dataplatform.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wande.dataplatform.domain.DataLineage;
import com.wande.dataplatform.domain.vo.DataLineageVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据血缘Mapper接口
 *
 * @author wande
 */
public interface DataLineageMapper extends BaseMapper<DataLineage> {

    /**
     * 查询数据血缘列表(带关联信息)
     *
     * @param lineage 查询条件
     * @return 数据血缘列表
     */
    List<DataLineageVO> selectLineageVOList(@Param("lineage") DataLineage lineage);

    /**
     * 查询上游依赖
     *
     * @param tableId 表ID
     * @return 上游元数据列表
     */
    List<DataLineageVO> selectUpstreamByTableId(@Param("tableId") Long tableId);

    /**
     * 查询下游影响
     *
     * @param tableId 表ID
     * @return 下游元数据列表
     */
    List<DataLineageVO> selectDownstreamByTableId(@Param("tableId") Long tableId);
}
